package com.one.blocks.common.util;

import java.util.List;

/**
 * @author <a href="mailto:idler41@163.com">linfuxin</a> created by 2022-02-20 13:32:29
 */
public interface TreeNode<T extends TreeNode<T, K>, K> {

    /**
     * 获取节点id
     *
     * @return 节点id
     */
    K getTreeId();

    /**
     * 获取父级节点id
     *
     * @return 父级节点id
     */
    K getParentTreeId();

    /**
     * 获取所有子节点
     *
     * @return 子节点
     */
    List<T> getChildren();

    /**
     * 设置子节点
     *
     * @param children 子节点
     */
    void setChildren(List<T> children);

}